B Binance · The world's largest crypto exchangeBinance Sign up → AD OKX OKX · A leading global crypto exchangeOKX Sign up → AD
Crypto analysis tools Loading Data: Binance public API (spot) · KRW conversion: Bithumb USDT rate

🗜️ Bollinger Band Squeeze Scanner

Scans the top 40 Binance coins for Bollinger Band squeezes (15m–1D): TTM ON or fired, 120-bar bandwidth percentile, squeeze length and momentum.

Squeeze scanner · top 40 by volume

Scanned–
In squeeze–BB inside Keltner
Just fired–
Tightest vs. its 120 bars
Coin Price
Loading

All indicators use closed bars; only the price column is the live value of the forming bar. "Just fired" means the squeeze was released within the last 3 closed bars. Percentile ranks the bandwidth within the last 120 bars (0% = narrowest). Tap a row to chart it below.

–

BB(20, 2)KC(20, 1.5×ATR)Squeeze on

Shaded background = bars in a squeeze. Arrows = releases (↑ if the release bar closed above the middle band, ↓ if below). Strip under the lower pane: yellow = squeeze on, grey = off, green ↑ / red ↓ = release bar.

Current state

Price–
Bandwidth–
Squeeze–
%B–
–

10 bars after past releases

–
Release Squeeze +10 bars High Low
–

Unfamiliar term? → Crypto & Stock Glossary

For information only, not investment advice. Data comes from exchanges' public APIs and may be delayed or interrupted. Charts: TradingView Lightweight Charts™

What this tool does

A squeeze is when the Bollinger Bands become unusually narrow. Periods of low volatility are often followed by large moves, so many traders keep a list of coins that are in a squeeze. This tool scans the top 40 Binance coins by trading volume in one pass, finds the ones in a squeeze, the ones that just fired and the ones whose bandwidth is the narrowest of the last 120 bars, and charts the selected coin with Bollinger Bands, the Keltner Channel, bandwidth and squeeze momentum.

How it is calculated

Bollinger Bands are the 20-bar simple moving average (middle band) ± 2 × the 20-bar population standard deviation. The Keltner Channel is the 20-bar exponential moving average ± 1.5 × ATR (20 bars, Wilder smoothing). When the upper Bollinger Band is below the upper Keltner line and the lower Bollinger Band is above the lower Keltner line — the Bollinger Bands sit inside the Keltner Channel — the squeeze is ON (TTM Squeeze definition). If the previous closed bar was ON and the current closed bar is OFF, the squeeze has fired; it is an upward (↑) release if the release bar closed at or above the middle band and downward (↓) if below. "Just fired" means a release within the last 3 closed bars. Bandwidth = (upper − lower) ÷ middle × 100%. Bandwidth percentile = the share of the other 119 bars, in the 120-bar window ending at the last closed bar, whose bandwidth is narrower than now (0% = narrowest of the 120). %B = (close − lower) ÷ (upper − lower). Squeeze momentum is the 20-bar linear regression of close − ((20-bar highest high + 20-bar lowest low) ÷ 2 + 20-bar SMA) ÷ 2. The scanner uses 200 bars for each of the top 40 USDT spot pairs by 24h volume, the chart uses 500 bars, and every reading uses closed bars.

Reading the screen, section by section

Control bar: timeframe, filter, rescan

The top bar picks the timeframe (15m, 1H, 4H, 1D; 4H by default), the filter (all, in squeeze, just fired) and holds the Rescan button. Changing the timeframe rescans from scratch and reloads the chart at that length. The filter only narrows results already calculated, so it applies instantly. The scanner refreshes every 3 minutes and the chart every 30 seconds on their own; Rescan fetches once more right now without waiting for the cycle. The chosen coin, timeframe, filter, lower pane and sort order stay in the address, so a shared link opens the same view. Because every verdict uses closed bars, a bar that has just closed reaches the table only on the next scan, which means a lag of up to a few minutes on 15-minute bars.

Scanner summary tiles

The first row of the scanner has four tiles. Scanned shows how many of the top 40 coins by volume have been calculated, with the timeframe and bar count (200 bars per coin). In squeeze counts coins whose Bollinger Bands sit inside the Keltner Channel. Just fired counts coins released within the last 3 closed bars, split into upward (↑) and downward (↓). Tightest vs. its 120 bars names the coin with the lowest bandwidth percentile, and pressing it opens that coin's chart straight away. The thin bar below tracks scan progress, and the heading shows the last scan time and any failed coins. Many coins entering a squeeze at once marks a quiet stretch for the whole market; releases piling up on one side mean several coins have started moving the same way.

The scanner table

Each row is one coin. By default coins in a squeeze come first, then coins that just fired, then the rest by lowest bandwidth percentile; click a header to sort by that column and click again to reverse it. Every indicator uses the last closed bar, and only the price column is the forming bar's value at scan time, so it changes every 3 minutes. For one minute after a bar closes it is not yet treated as closed, so values still reflect the bar before. New listings without enough bars and coins that failed to load are listed separately at the bottom. Clicking a row switches the chart below to that coin.

  • 24h: change from Binance's 24-hour ticker (as of the scan)
  • Bandwidth: (upper − lower) ÷ middle × 100%
  • Percentile: where the bandwidth sits within the last 120 bars; 0% is the narrowest
  • Squeeze: ON, fired ↑ or fired ↓ (with how many bars ago), or — when neither
  • Bars: bars in the current squeeze, or for a recent release the squeeze length before it in brackets
  • %B: (close − lower) ÷ (upper − lower); above 1 is outside the upper band, below 0 outside the lower

The chart: Bollinger Bands and Keltner Channel

Selecting a row draws the coin's last 500 bars in the chart at lower left. Over the candles and volume sit the Bollinger Bands (solid upper and lower lines with a dashed middle, 20 bars ± 2 standard deviations) and the Keltner Channel (dotted, 20-bar EMA ± 1.5 × ATR). Closed bars in a squeeze have a shaded background, and release bars carry a labelled arrow, pointing up if the close was above the middle band and down if below. The chart reloads every 30 seconds, so the last candle and the line ends follow the forming bar, but shading and arrows attach only to closed bars. Even if the solid lines poke outside the dotted ones on the forming bar, it does not count as a release until the bar closes. The moments the solid lines slip inside the dotted ones, and later break back out, are what this chart is for.

Lower pane: bandwidth and squeeze momentum

The lower pane shows either bandwidth or squeeze momentum. Bandwidth mode draws the bandwidth line plus a dotted line for the lowest bandwidth of the last 120 bars; when the two touch, the bands are at their narrowest in 120 bars. Momentum mode shows bars for a 20-bar linear regression of the close minus the average of the 20-bar high-low midpoint and the 20-bar mean. Above or below zero gives the direction, strong bars are growing versus the previous bar and faded bars are shrinking. The strip under the pane marks each closed bar as in squeeze, off or a release, and leaves the forming bar blank. The legend line shows the time, value and state of the bar under your cursor, and the crosshairs in both panes move together. Bandwidth pinned to its floor while momentum bars fade is the textbook look of a squeeze.

Current state tiles

Next to the Current state heading is the time of the last closed bar used for the verdict. The tiles show the price (with an approximate won value converted at the Bithumb USDT rate), bandwidth with its 120-bar percentile, the squeeze state (for ON, how many bars it has lasted; for a release, when it happened and how long the squeeze was; for OFF, Bollinger outside Keltner), and %B with that bar's upper and lower band values. Only the price comes from the forming bar; everything else is from the closed bar, so the price can be above the upper band value while %B still reads below 1. When the two disagree, watch whether %B follows once the next bar closes. The won value is a reference and can differ from won prices on Korean exchanges.

Reading the current state

The text under the tiles describes the bar in four steps: state, bandwidth position, close position and momentum. Bandwidth position is narrowest at a 0% percentile, very narrow at 10% or less, narrow at 30% or less, wide at 80% or more, widest at 100%, and moderate otherwise. Close position uses %B: above the upper band (over 1), near the upper band (0.8 or more), between the middle and upper band (0.5 or more), between the middle and lower band, near the lower band (0.2 or less) and below the lower band (under 0). Momentum is described as above or below zero and growing or shrinking against the previous bar. The text states facts and makes no forecast. It is rewritten every 30 seconds, but until a bar closes it is reading the same closed bar, so it is normal for it to stay the same.

10 bars after past releases

This table lists up to the eight most recent releases within the chart's closed bars, newest first. The columns are the release bar's time and direction, the squeeze length before it (marked ≥ if it was cut off at the start of the chart), the change in close 10 bars later, and the highest high and lowest low within those 10 bars relative to the release close. Releases with fewer than 10 bars since are shown as pending. The summary above counts, among releases at least 10 bars old, how many had the close 10 bars later on the release side, and averages the largest move in the release direction and against it, adding a warning about chance when there are fewer than 5. A large move against the release direction means the coin tended to whipsaw right after releases. Past records do not tell you what comes next.

Keeping it open

Scan the summary counts for squeezes and releases, then the ON and fired rows at the top of the table, then the chosen coin's chart and current state. The scanner refreshes every 3 minutes and the chart every 30 seconds; with the tab hidden they pause and reload the moment you come back. Because verdicts use closed bars, the table changes most right after a bar closes: 4-hour bars close every four hours from 00:00 UTC and daily bars at 00:00 UTC, and the change appears on the first scan at least a minute after that. Switching the same coin to another timeframe shows whether the squeeze spans several lengths. Keeping a live candlestick chart tool, a multi-timeframe trend tool and a volume spike scanner open in other tabs makes it easier to follow what happens after a release.

Things to know

Frequently asked questions

How is a Bollinger squeeze different from a TTM Squeeze?

John Bollinger's squeeze is bandwidth falling to its narrowest in several months. John Carter's TTM Squeeze is the Bollinger Bands moving inside the Keltner Channel. This tool shows both: the Squeeze column follows TTM (ON and fired), and the Percentile column follows Bollinger (bandwidth rank within the last 120 bars).

My TradingView indicator shows slightly different values.

Bollinger Bands match exactly. The EMA and ATR in the Keltner Channel depend very slightly on where the calculation starts; here the scanner uses 200 bars and the chart 500. To compare with TradingView's built-in Keltner Channels, set the multiplier to 1.5 and the ATR length to 20. LazyBear's Squeeze Momentum indicator builds its Keltner Channel from a simple moving average and an average of True Range, so its ON/OFF can occasionally differ. The momentum histogram formula is the same.

Does price move in the release direction after a squeeze fires?

Often it does not. The direction is only a classification based on whether the release bar closed above or below the middle band. The table shows how price moved in the 10 bars after each past release within the chart period (500 bars), so you can see how often this coin followed the release direction. Small samples can be chance.

Why only closed bars?

On a forming bar the bands change with every tick, so ON and OFF can flip several times within one bar. The squeeze state, bandwidth, percentile, %B and bar count all use the last closed bar; only the price column (updated with each scan, every 3 minutes) and the last candle and lines on the chart (every 30 seconds) follow the forming bar.

How is the KRW price calculated?

It is the USDT price multiplied by Bithumb's USDT/KRW rate (Upbit's if Bithumb is unavailable), a reference only. It can differ from Korean exchange prices, which include the kimchi premium.

For information only, not investment advice. Data comes from exchanges' public APIs and may be delayed or interrupted.

📚 Worth reading
🌪️Volatility spikes on the chart: ATR, bandwidth and stops→ ↔️How to Spot a Ranging Market and Why Indicators Whipsaw→ 🎯How to Read Bollinger Bands: Bandwidth, the Squeeze and %B→ 📏How to Use ATR: Volatility, Stop Distance and Position Size→
← All crypto tools